在 Elasticsearch 中使用 PyTorch 进行现代自然语言处理的介绍

来源:CSDN博客 | 2022-02-25 10:26:30 |

随着 8.0 的发布,Elastic 很高兴能够将 PyTorch 机器学习模型上传到 Elasticsearch 中,以在 Elastic Stack 中提供现代自然语言处理 (NLP)。 现在,Elasticsearch 用户能够集成用于构建 NLP 模型的最流行的格式之一,并将这些模型作为 NLP 数据管道的一部分通过我们的 Inference processor 整合到 Elasticsearch 中。 添加 PyTorch 模型以及新的 ANN 搜索 API的能力为 Elastic Enterprise Search 添加了一个全新的向量(双关语)。

NLP 在 Elastic Stack 7.x 和 8.0 中的区别

Elasticsearch 一直是进行 NLP 的好地方,但从历史上看,它需要在 Elasticsearch 之外进行一些处理,或者编写一些非常复杂的插件。 借助 8.0,用户现在可以在 Elasticsearch 中更直接地执行命名实体识别、情感分析、文本分类等操作——无需额外的组件或编码。 不仅在 Elasticsearch 中本地计算和创建向量在水平可扩展性方面是“胜利”(通过在服务器集群中分布计算)——这一变化还为 Elasticsearch 用户节省了大量时间和精力。

借助 Elastic 8.0,用户可以直接在 Elasticsearch 中使用 PyTorch 机器学习模型(例如 BERT),并在 Elasticsearch 中使用这些模型进行推理。 这些模型可以是你自己的自定义模型,也可以是在 Hugging Face 等存储库中发布到社区的模型。

通过使用户能够直接在 Elasticsearch 中执行推理,将现代 NLP 的强大功能集成到搜索应用程序和体验(想想:无需编码)、本质上更高效(得益于 Elasticsearch 的分布式计算能力)和 NLP 本身比以往任何时候都更容易 变得更快,因为你不需要将数据移出到单独的进程或系统中。

什么是自然语言处理?

NLP 是指我们可以使用软件来操作和理解口语或书面文本或自然语言的方式。 2018 年,Google 开源了一种用于 NLP 预训练的新技术,称为来自 Transformers 的双向编码器呈现,或 BERT。 BERT 通过在没有任何人工参与的情况下对互联网大小的数据集(例如,想想所有的维基百科和数字书籍)进行训练来利用 “transfer learning”。

Transfer learning 允许对 BERT 模型进行预训练以进行通用语言理解。一旦模型只经过一次预训练,它就可以被重用并针对更具体的任务进行微调,以了解语言的使用方式。

为了支持类 BERT 模型(使用与 BERT 相同的标记器的模型),Elasticsearch 将首先通过 PyTorch 模型支持支持大多数最常见的 NLP 任务。 PyTorch 是最受欢迎的现代机器学习库之一,拥有大量活跃用户,它是一个支持深度神经网络的库,例如 BERT 使用的 Transformer 架构。

以下是一些示例 NLP 任务:

情绪分析:用于识别正面与负面陈述的二元分类命名实体识别 (NER):从非结构化文本构建结构,尝试提取名称、位置或组织等细节文本分类:零样本分类允许你根据你选择的类对文本进行分类,而无需进行预训练。文本嵌入:用于 k 近邻 (kNN) 搜索

Elastic Stack NLP 能做什么?

关键词: 自然语言处理 PyTorch